home *** CD-ROM | disk | FTP | other *** search
-
-
-
- nnnnmmmmooooddddeeee((((3333GGGG)))) nnnnmmmmooooddddeeee((((3333GGGG))))
-
-
-
- NNNNAAAAMMMMEEEE
- nnnnmmmmooooddddeeee - specify renormalization of normals
-
- FFFFOOOORRRRTTTTRRRRAAAANNNN SSSSPPPPEEEECCCCIIIIFFFFIIIICCCCAAAATTTTIIIIOOOONNNN
- ssssuuuubbbbrrrroooouuuuttttiiiinnnneeee nnnnmmmmooooddddeeee((((mmmmooooddddeeee))))
- iiiinnnntttteeeeggggeeeerrrr****4444 mmmmooooddddeeee
-
- PPPPAAAARRRRAAAAMMMMEEEETTTTEEEERRRRSSSS
- _m_o_d_e expects a symbolic constant. There are two defined constants for
- this parameter:
-
- NNNNAAAAUUUUTTTTOOOO causes normals to be renormalized only if the current
- ModelView matrix is not orthonormal. (default)
-
- NNNNNNNNOOOORRRRMMMMAAAALLLLIIIIZZZZEEEE causes normals to always be renormalized, regardless of
- the current ModelView matrix.
-
- DDDDEEEESSSSCCCCRRRRIIIIPPPPTTTTIIIIOOOONNNN
- IRIS systems transform vertex normals from object-coordinates to eye-
- coordinates before doing lighting calculations. While the matrix mode is
- MMMMVVVVIIIIEEEEWWWWIIIINNNN, a separate Normal matrix is maintained to support this
- transformation. The Normal matrix is the inverse transpose of the
- upper-left 3 x 3 portion of the ModelView matrix.
-
- Transformed normals must be unit length if the lighting calculations are
- to be meaningful. Transformed normals will be unit length if 1) they
- were unit length in object-coordinates, and 2) the current Normal matrix
- is orthonormal (see notes). If one or both of these conditions are not
- met, the normal must be normalized (corrected to have unit length) after
- it is transformed. nnnnmmmmooooddddeeee helps the system determine when normalization
- is required.
-
- Each time the ModelView matrix is changed, the IRIS determines whether
- the resulting (inverse-transpose) Normal matrix is orthonormal or not,
- and saves the result of the test as a flag. After each normal is
- transformed, both this flag and the nnnnmmmmooooddddeeee flag are tested. If nnnnmmmmooooddddeeee is
- NNNNAAAAUUUUTTTTOOOO, the normal is normalized if and only if the flag is set (i.e. the
- ModelView matrix is not orthonormal). NNNNAAAAUUUUTTTTOOOO mode is appropriate when the
- model normals are known to be unit length. If nnnnmmmmooooddddeeee is NNNNNNNNOOOORRRRMMMMAAAA, the
- normal is normalized unconditionally. NNNNNNNNOOOORRRRMMMMAAAA mode is appropriate when
- the model normals may not be unit length.
-
- NNNNAAAAUUUUTTTTOOOO is the default nnnnmmmmooooddddeeee.
-
- Because normalization involves division by a computed square root, it can
- adversely affect system performance.
-
- SSSSEEEEEEEE AAAALLLLSSSSOOOO
- mmode, loadma, multma, rot, scale, transl, lmbind
-
-
-
-
-
-
- PPPPaaaaggggeeee 1111
-
-
-
-
-
-
- nnnnmmmmooooddddeeee((((3333GGGG)))) nnnnmmmmooooddddeeee((((3333GGGG))))
-
-
-
- NNNNOOOOTTTTEEEESSSS
- IRIS-4D G, GT, and GTX models, and the Personal Iris, do not support
- nnnnmmmmooooddddeeee.
-
- nnnnmmmmooooddddeeee cannot be used while draw mode is MMMMSSSSIIIINNNNGGGGLLLL.
-
- On Impact and Infinite Reality NNNNAAAAUUUUTTTTOOOO is not supported. Normals are
- always normalized.
-
- For our purposes a matrix is orthogonal if it transforms normals to the
- same length regardless of their direction, and it is orthonormal if this
- length is the same as the untransformed length. Rotation matrixes are
- always orthonormal. Scale matrixes are orthogonal but not orthonormal if
- the three scale values are identical, neither orthogonal nor orthonormal
- otherwise. Uniform scale ModelView matrices can be normalized to the
- identity matrix, and are therefore ignored by the Normal matrix.
- Translations do not affect the upper-left 3x3 ModelView matrix, and are
- therefore also ignored by the Normal matrix.
-
- The length of a normal is the square root of its dot product with itself.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- PPPPaaaaggggeeee 2222
-
-
-
-